﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 替换文本转成Pascal命名
{
    internal class ReadTxt
    {
        public void FuncA()
        {
            var fileInfo = File.ReadAllLines("C:\\Users\\limen\\Downloads\\temp.txt");
            var sb = new StringBuilder();
            foreach (var item in fileInfo)
            {
                string output = TransformString(item);
                Console.WriteLine(output); // 输出: HelloWorldExample
                sb.Append(output+"\r\n");
            }
            File.WriteAllText("C:\\Users\\limen\\Downloads\\temp1.txt", sb.ToString());
        }
        public static string TransformString(string inputStr)
        {
            // 初始化一个StringBuilder用于存储结果  
            StringBuilder result = new StringBuilder();
            // 标记是否为单词的第一个字符  
            bool isFirstChar = true;

            // 遍历输入字符串中的每个字符  
            for (int i = 0; i < inputStr.Length; i++)
            {
                char currentChar = inputStr[i];

                // 如果当前字符是下划线  
                if (currentChar == '_')
                {
                    // 跳过下划线，并将下一个字符标记为首字母  
                    isFirstChar = true;
                    continue;
                }

                // 如果当前字符是单词的第一个字符，则大写它  
                if (isFirstChar)
                {
                    result.Append(char.ToUpper(currentChar));
                    isFirstChar = false; // 后续字符不再是首字母  
                }
                else // 如果不是单词的第一个字符，则小写它  
                {
                    result.Append(char.ToLower(currentChar));
                }
            }

            // 返回处理后的字符串  
            return result.ToString();
        }
    }
}
